/**
 * License Agreement.
 *
 *  SOCO - Extremal Algebra Component Library
 *
 * Copyright (C) 2009  UHK, Czech Republic.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License version 2.1 as published by the Free Software Foundation.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 */
package cz.uhk.max.matrix;

import java.util.List;

public interface IMatrixDao {
	public List<Col> maximum(Matrix m);
	public Col minimum(Row r);
	public Col minimum(Matrix m);
	public Col minimum(List<Col> cols);
	public Col maximum(List<Col> cols);
	public Matrix multiMatrixWithVector(Matrix A, Matrix x);
	public Boolean isSame (Matrix x1, Matrix x2);
	public Col multiRowWithVector (Row a, Matrix x);
	public Matrix additionMatrices(Matrix A, Matrix B);
	public void changeSide(int side, Matrix A, Matrix B);
	public boolean isVectorSolution(Matrix A, Matrix B, Matrix vector);
	public Container nonEqualsRows(Matrix A, Matrix B, Matrix bound);
	public Long indexOfRowWithMax(TreeMatrix respA, TreeMatrix respB);
	/**
	 * Method return TreeMatrix contents values of A that is not greater 
	 * than value of x at column or value of x(j) if a(j) is greater
	 * 
	 * @return Object TreeMatrix with values of A and restriction x
	 */
	public TreeMatrix respectVector(TreeMatrix A, TreeMatrix x);
}
